//
//  06_28.c
//  tasks
//
//  Created by Daniel on 2024/6/28.
//

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <ctype.h>
#include <limits.h>

//void find_single_num(int arr[10],int sz,int* num1,int* num2)
//{
//    int ret = 0;
//    //    异或
//    for(int i = 0; i < sz; i++)
//    {
//        ret ^= arr[i];
//    }
//    //    计算ret的二进制中最右边的第几位是1;
//    for(int pos = 0; pos < 32; pos++)
//    {
//        if(((ret>>pos)&1) == 1)
//        {
//
//            break;
//        }
//    }
//}
//
//int main()
//{
//    //1 2 3 4 5  1 2 3 4 6
//    int arr[10] = {1,2,3,4,5,1,2,3,4,6};
//    int sz = sizeof(arr)/sizeof(arr[0]);
//    int num1 = 0;
//    int num2 = 0;
//    find_single_num(arr,sz,&num1,&num2);
//    return 0;
//}

//enum Status {
//    VALID,
//    INVALID
//}sta = INVALID;//默认非法
//
//int my_atoi(const char* str)
//{
//    assert(str);
//    int flag = 1;
//    if(*str == '\0')
//        return 0;
////    跳过空白字符
//    while(isspace(*str))
//    {
//        str++;
//    }
////    +-号
//    if(*str == '+')
//    {
//        flag = 1;
//        str++;
//    }
//    else if (*str == '-')
//    {
//        flag = -1;
//        str++;
//    }
//    long long ret = 0;
//    while(*str)
//    {
//        if(isdigit(*str))
//        {
////            越界
//            ret = ret * 10 +  flag * (*str - '0');
//            if(ret > INT_MAX || ret < INT_MIN)
//            {
//                return 0;
//            }
//
//        }
//        else
//        {
//            return (int)ret;
//        }
//        str++;
//    }
//    if(*str == '\0')
//    {
//        sta = VALID;
//    }
//    return (int)ret;
//}
//
//int main()
//{
//    char arr[200] = "23423";
//    int ret = my_atoi(arr);
//    if(sta == INVALID)
//    {
//        printf("非法返回:%d\n",ret);
//    }
//    else if (sta == VALID)
//    {
//        printf("合法转换:%d\n",ret);
//    }
//    return 0;
//}
